package pe.hongi.frist;

import net.daum.adam.publisher.AdView;
import net.daum.adam.publisher.AdView.AnimationType;
import net.daum.adam.publisher.AdView.OnAdClickedListener;
import net.daum.adam.publisher.AdView.OnAdClosedListener;
import net.daum.adam.publisher.AdView.OnAdFailedListener;
import net.daum.adam.publisher.AdView.OnAdLoadedListener;
import net.daum.adam.publisher.AdView.OnAdWillLoadListener;
import net.daum.adam.publisher.impl.AdError;
import android.app.TabActivity;
import android.content.res.Configuration;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TabHost;
import android.widget.TabHost.OnTabChangeListener;

public class BannerTypeXML2 extends TabActivity implements OnTabChangeListener {
	private static final String LOGTAG = "AdamSample2";
	private AdView adView = null;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.banner_type_2);

		// initialize Ad@m
		initAdam();

		// UI
		TabHost mTabHost = getTabHost();
		mTabHost.addTab(mTabHost.newTabSpec("tab1").setIndicator("광고가 있는 탭").setContent(R.id.tab1));
		mTabHost.addTab(mTabHost.newTabSpec("tab2").setIndicator("광고가 없는 탭").setContent(R.id.tab2));

		mTabHost.setOnTabChangedListener(this);

		Button pauseBtn = (Button) findViewById(R.id.pause);
		Button resumeBtn = (Button) findViewById(R.id.resume);

		pauseBtn.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				if (adView != null) {
					// 서버로부터 광고 요청 중단
					adView.pause();
				}
			}
		});

		resumeBtn.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				if (adView != null) {
					// 서버로부터 광고 요청 재개
					adView.resume();
				}

			}
		});
	}

	@Override
	public void onDestroy() {
		super.onDestroy();

		if (adView != null) {
			adView.destroy();
			adView = null;
		}
	}

	private void initAdam() {

		// Ad@m sdk 초기화 시작
		adView = (AdView) findViewById(R.id.adview);

		// 광고 클릭시 실행할 리스너
		adView.setOnAdClickedListener(new OnAdClickedListener() {
			@Override
			public void OnAdClicked() {
				Log.i(LOGTAG, "광고를 클릭했습니다.");
			}
		});

		// 광고 내려받기 실패했을 경우에 실행할 리스너
		adView.setOnAdFailedListener(new OnAdFailedListener() {
			@Override
			public void OnAdFailed(AdError arg0, String arg1) {
				Log.w(LOGTAG, arg1);
			}
		});

		// 광고를 정상적으로 내려받았을 경우에 실행할 리스너
		adView.setOnAdLoadedListener(new OnAdLoadedListener() {

			@Override
			public void OnAdLoaded() {
				Log.i(LOGTAG, "광고가 정상적으로 로딩되었습니다.");
			}
		});

		// 광고를 불러올때 실행할 리스너
		adView.setOnAdWillLoadListener(new OnAdWillLoadListener() {

			@Override
			public void OnAdWillLoad(String arg1) {
				Log.i(LOGTAG, "광고를 불러옵니다. : " + arg1);
			}
		});

		// 광고를 닫았을때 실행할 리스너
		adView.setOnAdClosedListener(new OnAdClosedListener() {

			@Override
			public void OnAdClosed() {
				Log.i(LOGTAG, "광고를 닫았습니다.");
			}
		});

		// 할당 받은 clientId 설정
		adView.setClientId("28b0Z0GT136c8518142");

		// 광고 갱신 시간 : 기본 60초
		adView.setRequestInterval(60);

		// Animation 효과 : 기본 값은 AnimationType.NONE
		adView.setAnimationType(AnimationType.FLIP_HORIZONTAL);

		adView.setVisibility(View.VISIBLE);
	}

	@Override
	public void onTabChanged(String tabId) {

		// 광고 View가 보이지 않을 때는 내부적으로 서버에 광고 요청을 하지 않는다.
		if (tabId.equals("tab1")) {
			adView.setVisibility(View.VISIBLE);
		} else if (tabId.equals("tab2")) {
			adView.setVisibility(View.INVISIBLE);
		}

	}

	@Override
	public void onConfigurationChanged(Configuration newConfig) {
		super.onConfigurationChanged(newConfig);
	}

}